#pragma once
#define uint unsigned int
#include <vector>
namespace NBE
{
	enum ATTRI
	{
		POS = 0,
		COLOR,
		TEXCOORD0,
		NORMAL,
		SumOfAttri
	};
	class Shader
	{
	public:
		struct AttriInfo
		{
			uint id;
			int sizeOfAttri;
			uint typeOfAttri;
			AttriInfo(uint _id, int size, uint type)
				:id(_id),sizeOfAttri(size),typeOfAttri(type)
			{}
		};

		void addAttributes(uint AttrName, uint sizeOfAttr, uint typeOfAttr)
		{
			attriList.push_back(AttriInfo(AttrName,sizeOfAttr, typeOfAttr));
		}

		inline std::vector<AttriInfo>& getAttributesList()
		{return attriList;}

		Shader(){}
		virtual ~Shader()
		{}
		unsigned int idx;
	private:
		std::vector<AttriInfo> attriList;
	};
}